<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<%
	String path = request.getContextPath();
	String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
	
	    <base href="<%=basePath%>">
	    
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta http-equiv="pragma" content="no-cache">
		<meta http-equiv="cache-control" content="no-cache">
		<meta http-equiv="expires" content="0">    
		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="This is my page">
		<link rel="stylesheet" type="text/css" href="<%=basePath%>/easyui/themes/default/easyui.css" />
		<link rel="stylesheet" type="text/css" href="<%=basePath%>/easyui/themes/icon.css" />
		<link rel="stylesheet" type="text/css" href="<%=basePath%>/css/index.css" />
		<title>index Page</title>
	
	</head>

	<body>
		<table id="menu"></table>
		
		<div id="menu_tool" style="padding:5px;">
			<div style="margin-bottom:5px;">
				<a href="#" class="easyui-linkbutton" iconCls="icon-add-new" plain="true" onclick="menu_tool.add();">添加</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-edit-new" plain="true" onclick="menu_tool.edit();">修改</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-delete-new" plain="true" onclick="menu_tool.remove();">删除</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-reload" plain="true"  onclick="menu_tool.reload();">刷新</a>
				<a href="#" class="easyui-linkbutton" iconCls="icon-redo" plain="true" onclick="menu_tool.redo();">取消选择</a>	
			</div>
			
			<div style="padding:0 0 0 7px;color:#333;">
				<form id="search">
					<p>
						菜单帐号：<input type="text" class="textbox" name="idSearch" style="width:110px">
						菜单名称：<input type="text" class="textbox" name="menuNameSearch" style="width:110px">
						菜单链接：<input type="text" class="textbox" name="menuHrefSearch" style="width:110px">
						菜单目标：<input type="text" class="textbox" name="menuTargetSearch" style="width:110px">
					</p>
					父亲节点：<input type="text" class="textbox" name="parentIdSearch" style="width:110px">
					菜单级别：<input type="text" class="textbox" name="gradeSearch" style="width:110px">
					菜单图标：<input type="text" class="textbox" name="iconClsSearch" style="width:110px">
					是否叶子：
							<select id="isLeafSearch" name = "isLeafSearch" style="width:110px">
								<option value=""/>
								<option value="0">否</option>
								<option value="1">是</option>
							</select>
					<a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="menu_tool.search();">查询</a>
				</form>
			</div>
			
		</div>
		
		<form id="menu_add" style="margin:0;padding:5px 0 0 25px;color:#333;">
			<p>菜单名称：<input type="text" name="menuName" class="textbox" style="width:200px;"></p>
			<p>菜单链接：<input type="text" name="menuHref" class="textbox" style="width:200px;"></p>
			<p>菜单目标：<input typr="text" name="menuTarget" class="textbox" style="width:200px;"></p>
			<p>父亲节点：<input id="parentId" class="textbox" name="parentId" style="width:205px;"></p>
			<p>菜单图标：<input typr="text" name="iconCls" class="textbox" style="width:200px;"></p>
			<p>是否叶子：
				<select id="isLeaf" style="width:205px">
					<option/>
					<option value="0">否</option>
					<option value="1">是</option>
				</select>
			</p>
		</form>
		
		<form id="menu_edit" style="margin:0;padding:5px 0 0 25px;color:#333;">
			<input type="hidden" name="id_edit" class="textbox" style="width:200px;">
			<p>菜单名称：<input type="text" name="menuName_edit" class="textbox" style="width:200px;"></p>
			<p>菜单链接：<input type="text" name="menuHref_edit" class="textbox" style="width:200px;"></p>
			<p>菜单目标：<input type="text" name="menuTarget_edit" class="textbox" style="width:200px;"></p>
			<p>父亲节点：<input id="parentId_edit" class="textbox" name="parentId_edit" style="width:205px;"></p>
			<p>菜单图标：<input typr="text" name="iconCls_edit" class="textbox" style="width:200px;"></p>
			<p>是否叶子：
				<select id="isLeaf_edit" style="width:205px">
					<option/>
					<option value="0">否</option>
					<option value="1">是</option>
				</select>
			</p>
		</form>
		<script type="text/javascript" src="<%=basePath%>/easyui/jquery.min.js"></script>
		<script type="text/javascript" src="<%=basePath%>/easyui/jquery.easyui.min.js"></script>
		<script type="text/javascript" src="<%=basePath%>/easyui/locale/easyui-lang-zh_CN.js" ></script>
		<script type="text/javascript" >
		
			$.extend($.fn.validatebox.defaults.rules, {
				menuNameRepetition : {
				     validator: function (value) {
				    	 var b = "0";
				    	 $.ajax({
				    	        type: "post",
				    	        dataType: "text",
				    	        async: false,
				    	        data :{
				    	        	name : value
				    	        },
				    	        url: "treeAction!isExistMenu",
				    	        success: function (data) {
				    	        	if(data > 0){
				    	        		b = "1";
				    	        	}
				    	        },
				    	    });
			                return (b=="1") ? true : false;
			         },
			    	message: '菜单名已被占用' 
				}
			 });
			$(function () {
					
				$('#menu').datagrid({
					url : 'treeAction!getMenuList',
					fit : true,
					fitColumns : true,
					striped : true,
					rownumbers : true,
					border : false,
					pagination : true,
					pageSize : 10,
					pageList : [5, 10, 15, 20, 25],
					pageNumber : 1,
					sortName : 'id',
					sortOrder : 'asc',
					toolbar : '#menu_tool',
					remoteSort:	false,
				    frozenColumns:[[
				    ]], 
					columns : [[
				    	{
				    		field:"ck",			
				    		checkbox:true,	
				    		align:'center',
				    		title : '自动编号',
				    		width:100
				    	},    
						{
							field : 'id',
							title : '菜单编号',
							align:'center',
							width : 100,
							sortable : true
						},	
						{
							field : 'menuName',
							title : '菜单名称',
							align:'center',
							width : 100,
							sortable : true
						},
						{
							field : 'menuHref',
							title : '菜单链接',
							align:'center',
							width : 100,
							sortable : true
						},
						{
							field : 'menuTarget',
							title : '菜单目标',
							align:'center',
							width : 100,
							sortable : true
						},
						{
							field : 'parentId',
							title : '父节点',
							align:'center',
							width : 100,
							sortable : true
						},
						{
							field : 'iconCls',
							title : '图标',
							align:'center',
							width : 100,
							sortable : true
						},
						{
							field : 'grade',
							title : '菜单级别',
							align:'center',
							width : 100,
							sortable : true
						},
						{
							field : 'isLeaf',
							title : '是否叶子',
							align:'center',
							width : 100,
							sortable : true,
							formatter: function(value, row, index){
							    if (value == "1") {
							        return '是';
							    }
							    else {
							        return '否';
							    }
							}
						}
					]]
				});
					
				$('#menu_add').dialog({
					width : 350,
					title : '新增菜单',
					modal : true,
					closed : true,
					iconCls : 'icon-add-new',
					buttons : [{
						text : '提交',
						iconCls : 'icon-add-new',
						handler : function () {
							if ($('#menu_add').form('validate')) {
								$.ajax({
									url : 'treeAction!addMenu',
									type : 'post',
									data : {
										menuName : $('input[name="menuName"]').val(),
										menuHref : $('input[name="menuHref"]').val(),
										menuTarget : $('input[name="menuTarget"]').val(),
										iconCls : $('input[name="iconCls"]').val(),
										isLeaf : $('#isLeaf').combobox('getValue'),
										parentId : $('#parentId').combotree('getValue')
									},
									beforeSend : function () {
										$.messager.progress({
											text : '正在新增中...'
										});
									},
									success : function (data, response, status) {
										$.messager.progress('close');
										if(data == 0){
											$.messager.alert('新增失败！', '新增菜单父结点不能是叶子节点！', 'warning');
										} else if (data > 0) {
											$.messager.show({
												title : '提示',
												msg : '新增菜单成功！！！'
											});
											$('#menu_add').dialog('close').form('reset');
											$('#menu').datagrid('reload');
											//parent.$('#nav').tree('reload');
											$('#parentId').combotree('reload');
										} else {
											$.messager.alert('新增失败！', '未知错误导致失败，请重试！', 'warning');
										}
									}
								});
							}
						}
					},{
						text : '取消',
						iconCls : 'icon-redo',
						handler : function () {
							$('#menu_add').dialog('close').form('reset');
						}
					}]
				});
				
				//新增菜单名称
				$('input[name="menuName"]').validatebox({
					required : true,
					validType :  [
			 	         'length[2,20]',
				         'menuNameRepetition'
					],
					missingMessage : '请输入菜单名称',
					//invalidMessage : '管理名称在 2-20 位',
				});
				//增加菜单父结点
				$('#parentId').combotree({
					url: "treeAction!syncMenu?type=all&date="+new Date()+"",
					//required : true,
					editable:true,
					lines : true
					//multiple : true,
				});
				//新增是否叶子
				$('#isLeaf').combobox({
					required:true,
					editable:false,
					missingMessage : '是否为叶子节点不为空',
					panelHeight:'auto'
				});
				
				$('#isLeafSearch').combobox({
					editable:false,
					panelHeight:'auto'
				});
				//修改
				$('#menu_edit').dialog({
					width : 350,
					title : '修改菜单',
					modal : true,
					closed : true,
					iconCls : 'icon-edit-new',
					buttons : [{
						text : '提交',
						iconCls : 'icon-edit-new',
						handler : function () {
							if ($('#menu_edit').form('validate')) {
								$.ajax({
										url : 'treeAction!updateMenu',
										type : 'post',
										data : {
											id: $('input[name="id_edit"]').val(),
											menuName : $('input[name="menuName_edit"]').val(),
											menuHref : $('input[name="menuHref_edit"]').val(),
											menuTarget : $('input[name="menuTarget_edit"]').val(),
											iconCls : $('input[name="iconCls_edit"]').val(),
											isLeaf : $('#isLeaf_edit').combobox('getValue'),
											parentId : $.trim($('#parentId_edit').combotree('getValue'))
										},
										beforeSend : function () {
											$.messager.progress({
												text : '正在修改中...'
											});
										},
										success : function (data, response, status) {
											
											$.messager.progress('close');
											if (data > 0) {
												$.messager.show({
													title : '提示',
													msg : '修改菜单成功'
														
												});
												$('#menu_edit').dialog('close').form('reset');
												//$('#nav').tree('reload');
												$('#parentId_edit').combotree('reload');
												$('#menu').datagrid('reload');
												$('#menu').datagrid('reload');
											} else {
												$.messager.alert('修改失败！', '未知错误导致失败，请重试！', 'warning');
											}
										}
									});
							}
						}
					},{
						text : '取消',
						iconCls : 'icon-redo',
						handler : function () {
							$('#menu_edit').dialog('close').form('reset');
						}
					}]
				});
				
				//修改菜单名称
				$('input[name="menuName_edit"]').validatebox({
					required : true,
					validType : 'length[2,20]',
					missingMessage : '请输入管理名称',
					invalidMessage : '管理名称在 2-20 位',
				});
				//修改菜单父结点
				$('#parentId_edit').combotree({
					url: "treeAction!syncMenu?type=all&date="+new Date()+"",
					//required : true,
					editable:true,
					lines : true
					//multiple : true,
				});
				//修改是否叶子
				$('#isLeaf_edit').combobox({
					required:true,
					editable:false,
					missingMessage : '是否为叶子节点',
					panelHeight:'auto'
				});
				
				//按钮事件
				menu_tool = {
					//搜索
					search : function () {
						$('#menu').datagrid('load', {
							id : $.trim($('input[name="idSearch"]').val()),
							menuName : $.trim($('input[name="menuNameSearch"]').val()),
							menuHref : $.trim($('input[name="menuHrefSearch"]').val()),
							menuTarget : $.trim($('input[name="menuTargetSearch"]').val()),
							parentId : $.trim($('input[name="parentIdSearch"]').val()),
							grade: $.trim($('input[name="gradeSearch"]').val()),
							iconCls : $.trim($('input[name="iconCls"]').val()),
							isLeaf : $('#isLeafSearch').combobox('getValue')
						});
					},
					//刷新
					reload : function () {
						$('#menu').datagrid('reload');
					},
					//撤销
					redo : function () {
						$('#menu').datagrid('unselectAll');
						$('#search').form('clear');
					},
					//添加
					add : function () {
						$('#menu_add').dialog('open');
						$('input[name="roleName"]').focus();
					},
					//删除
					remove : function () {
						var rows = $('#menu').datagrid('getSelections');
						if (rows.length > 0) {
							$.messager.confirm('确定操作', '您正在要删除所选的记录吗？', function (flag) {
								if (flag) {
									var menuIds = [];
									for (var i = 0; i < rows.length; i ++) {
										menuIds.push(rows[i].id);
									}
									$.ajax({
										type : 'POST',
										url : 'treeAction!deleteMenu',
										data : {
											menuIds : menuIds.join(',')
										},
										beforeSend : function () {
											$('#menu').datagrid('loading');
										},
										success : function (data) {
											if(data == 0){
												$('#menu').datagrid('loaded');
												$('#menu').datagrid('load');
												$('#menu').datagrid('unselectAll');
												$.messager.alert('提示', '存在菜单被分配给角色，请重新选择', 'info');
											} else if (data > 0) {
												$('#menu').datagrid('loaded');
												$('#menu').datagrid('load');
												$('#menu').datagrid('unselectAll');
												//$('#nav').tree('reload');
												$('#parentId').combotree('reload');
												$('#parentId_edit').combotree('reload');
												$.messager.show({
													title : '提示',
													msg : data + '个菜单被删除成功！'
												});
											} else{
												$.messager.alert('删除失败！', '未知错误导致失败，请重试！', 'warning');
											}
										}
									});
								}
							});
						} else {
							$.messager.alert('提示', '请选择要删除的记录！', 'info');
						}
					},
					//编辑
					edit : function () {
							var menuIdString;
							var rows = $('#menu').datagrid('getSelections');
							if (rows.length > 1) {
								$.messager.alert('警告操作！', '编辑记录只能选定一条数据！', 'warning');
							} else if (rows.length == 1) {
								$.ajax({
									url : 'treeAction!getMenuByMenuId',
									type : 'post',
									data : {
										id : rows[0].id
									},
									beforeSend : function () {
										$.messager.progress({
											text : '正在获取中...'
										});
									},
									success : function (data, response, status) {
										$.messager.progress('close');
										if (data) {
											var objData = $.parseJSON(data);
											var obj = objData.treeMenuPo;
											$('#menu_edit').form('load', {
												id_edit : obj.id,
												menuName_edit : obj.menuName,
												menuHref_edit : obj.menuHref,
												menuTarget_edit : obj.menuTarget,
												iconCls_edit : obj.iconCls
											}).dialog('open');
											$('#parentId_edit').combotree('setValue', obj.parentId);
											$('#parentId_edit').combotree('setText', objData.parentMenuName);
											$('#isLeaf_edit').combobox('setValue',obj.isLeaf);
											if(obj.isLeaf == 0){
												$('#isLeaf_edit').combobox('setText',"否");
											} else{
												$('#isLeaf_edit').combobox('setText',"是");
											}
											
										} else {
											$.messager.alert('获取失败！', '未知错误导致失败，请重试！', 'warning');
										}
									}
								});
							} else if (rows.length == 0) {
								$.messager.alert('警告操作！', '编辑记录至少选定一条数据！', 'warning');
							}
						}
					};
				
			});
		</script>
	</body>
</html>
